<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //Promise.all 可以获取多个异步操作，但是只要有一个错误，就会中断,返回 失败的结果；
        //如果Promise.all的结果都是成功的，name返回成功，并且返回的是一个数组
        var p1 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve("成功");
            }, 2000);

        })
        var p2 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve("success");
            }, 1000);

        })
        var p3 = new Promise((resolve, reject) => {
            reject("fail");
        })

        // Promise.all([p1, p2]).then((data) => {//成功
        //     console.log("成功：", data);
        // }, (err) => {// 失败
        //     console.log("失败：", err);
        // })

        // Promise.all([p2, p3]).then((data) => {//成功
        //     console.log("成功：", data);
        // }, (err) => {// 失败
        //     console.log("失败：", err);
        // })

        Promise.allSettled([p1, p2, p3]).then((data) => {//成功
            console.log("成功：", data);
        }, (err) => {// 失败
            console.log("失败：", err);
        })
        //all,allSettled  都是按照调用的顺序 来返回primise结果的，可以解决地狱回调问题
    </script>
</body>

</html>